package com.xindacloud.sms.console.system.vo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "短信报告VO")
@JsonIgnoreProperties(ignoreUnknown = true)
public class SmsReportVO implements Serializable {


    /**
     * 消息内容
     * isNullAble:0
     */
    @ApiModelProperty(value = "消息内容", name = "messageBody")
    private String messageBody;

    /**
     * 消息ID为UUID
     * isNullAble:0
     */
    @ApiModelProperty(value = "消息ID", name = "messageId")
    private String messageId;

    /**
     * 网络编码
     * isNullAble:1
     */
    @ApiModelProperty(value = "网络名称", name = "network")
    private String network;

    @ApiModelProperty(value = "价格", name = "free")
    private BigDecimal free;

    /**
     * 接收者
     * isNullAble:1
     */
    @ApiModelProperty(value = "接收者", name = "sentTo")
    private String sendTo;

    /**
     * 消息状态
     * delivered，expired，failed，rejected，accepted，buffered或者unknown
     * isNullAble:1
     */
    @ApiModelProperty(value = "消息状态", name = "finalStatus")
    private String finalStatus;


    @ApiModelProperty(value = "错误原因", name = "reason")
    private String reason;

    /**
     * 代理商开始将此交付收据推送到您的Webhook端点的时间
     * 2020-01-01 12:00:00 +0000
     * isNullAble:1
     */
    @ApiModelProperty(value = "短信到达时间", name = "messageTimestamp")
    private String messageTimestamp;

    /**
     * 网络名称
     * isNullAble:1
     */
    @ApiModelProperty(value = "网络名称", name = "networkName")
    private String networkName;

    @ApiModelProperty(value = "国家名称如China", name = "countryName")
    private String countryName;

    @ApiModelProperty(value = "国家号码前缀", name = "prefix")
    private String prefix;
    @ApiModelProperty(value = "客户端名称", name = "clientName")
    private String clientName;
    @ApiModelProperty(value = "发送者名称或ID号", name = "sender")
    private String sender;

}
